package top.chmin.project.cloud.common.code.template.auto;


import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.time.LocalDateTime;
import java.util.List;

/**
 * chmin
 * 2023-12-27 19:56:45
 * cloud-builder
 */
public interface CodeTemplateCodeNameSelect {

    @PostMapping("/au/codeTemplate/codeName/select")
    List<Result> selectCodeName(@RequestBody Param param);

    @Getter
    @Setter
    @Accessors(chain = true)
    class Param {
        // 编码补齐长度
        Integer fixLength;
        // 步进最大值
        Integer maxStep;
        // 步进最小值
        Integer minStep;
        // 编码生成第一个值
        Integer initValue;
        // 编码中的时间串格式
        String codeDateTimeFormat;
        // 编码前缀
        String prefix;
        // 编码名称
        String codeName;
        // 修改人
        String updateBy;
        // 创建人
        String createBy;
        // ID
        Long id;
        // 修改时间
        List<LocalDateTime> updateTime;
        // 创建时间
        List<LocalDateTime> createTime;
    }

    @Getter
    @Setter
    @Accessors(chain = true)
    class Result {
        // 编码补齐长度
        Integer fixLength;
        // 步进最大值
        Integer maxStep;
        // 步进最小值
        Integer minStep;
        // 编码生成第一个值
        Integer initValue;
        // 编码中的时间串格式
        String codeDateTimeFormat;
        // 编码前缀
        String prefix;
        // 编码名称
        String codeName;
        // 修改时间
        LocalDateTime updateTime;
        // 创建时间
        LocalDateTime createTime;
        // 修改人
        String updateBy;
        // 创建人
        String createBy;
        // ID
        Long id;
        String label;
        String value;
    }

}
